import { defineStore } from 'pinia'
import { ref } from 'vue'

/**
 * 定义一个名为myStore的状态管理 store
 */
export const ShouyeStore = defineStore(
  'shouyeStore',
  () => {
    /**
     * 给store定义一个名为shouye的状态，初始值为ref<any>
     */
    const shouye = ref<any>()
    const nianji = ref<any>()
    /**
     * 设置首页信息
     * @param val - 首页信息
     */
    const setshouye = (val: any) => {
      console.log('shouye被存进pinia')
      shouye.value = val
    }
    const setnianji = (val: any) => {
      nianji.value = val
    }

    /**
     * 清理首页信息，退出时使用
     */
    const clearshouye = () => {
      shouye.value = undefined
    }

    /**
     * 返回store的所有状态和方法
     */
    return {
      shouye,
      setshouye,
      clearshouye,
      setnianji,
      nianji,
    }
  },
  // TODO: 持久化   这个主要在pinia里设置后就会自动存到小程序配置里。
  {
    // 网页端配置
    // persist: true,
    // 小程序端配置
    persist: {
      storage: {
        /**
         * 获取指定key的存储值
         * @param key - 存储的key
         * @returns 存储值
         */
        getItem(key) {
          return uni.getStorageSync(key)
        },
        /**
         * 设置指定key的存储值
         * @param key - 存储的key
         * @param value - 存储值
         */
        setItem(key, value) {
          uni.setStorageSync(key, value)
        },
      },
    },
  },
)
